// 引入 axios 库
import axios from ''
// 引入toast组件
// import { Toast } from 'vant'

// 设置开发环境与生产环境下的baseURL   http://rap2api.taobao.org/app/mock/285834
// const baseURL = process.env.NODE.ENV === 'development'
// npm run build 生成dist目录 安装  http-server  npm i -g http-server
// const baseURL = process.env.NODE_ENV === 'development'
//   ? 'http://rap2api.taobao.org/app/mock/285834'
//   : ' http://www.xiongmaoyouxuan.com'

const baseURL = 'https://m.maizuo.com'

// 之所以创建axios实例 是因为后边要做一些拦截器的使用
const service = axios.create({
  baseURL,
})

// 请求拦截
service.interceptors.request.use(config => {
  // 请求数据的过程中，数据还没有返回回来，做一些提示
//   Toast.loading({
//     message: '加载中...',
//     forbidClick: true,
//     loadingType: 'spinner',
//     duration: 0,
//   })
  return config
})

// 响应拦截 返回的数据会传在promise对象的then方法中，或者catch中
service.interceptors.response.use(config => {
  // 数据响应回来，关闭加载
//   Toast.clear()
  if (config.status >= 200 && config.status < 300) {
    // 获取到后端返回的数据
    const resData = config.data
    if (resData.code === 200) {
      return resData.data
    } else {
      const e = new Error('接口code不为200')
      e.error = resData
      Promise.reject(e)
    }
  } else {
    const err = new Error('后端接口返回status不为200')
    err.error = config
    Promise.reject(err)
  }
})

// 导出axios实例
// 像这种default导出，在引入的时候，可以自定义名字，
// 如果同时以对象的方式导出多个，在引入的时候，必须和导出时候的名字一样
export default service
